home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / src890906.arc / 8530.H < prev    next >
C/C++ Source or Header  |  1989-08-18  |  8KB  |  234 lines

  1. #ifndef    FLAG
  2.  
  3. #include "global.h"
  4.  
  5. /* In 8530.asm: */
  6. void write_scc __ARGS((int16 ctl,int16 reg,int16 val));
  7. char read_scc __ARGS((int16 ctl,int reg));
  8. int rx8530 __ARGS((int16 ctl,int16 data,char *buf,int16 bufsize));
  9.  
  10. /* 8530 Serial Communications Controller Register definitions */
  11. #define    FLAG    0x7e
  12.  
  13. /* Write Register 0 */
  14. #define    R0    0        /* Register selects */
  15. #define    R1    1
  16. #define    R2    2
  17. #define    R3    3
  18. #define    R4    4
  19. #define    R5    5
  20. #define    R6    6
  21. #define    R7    7
  22. #define    R8    8
  23. #define    R9    9
  24. #define    R10    10
  25. #define    R11    11
  26. #define    R12    12
  27. #define    R13    13
  28. #define    R14    14
  29. #define    R15    15
  30.  
  31. #define    NULLCODE    0    /* Null Code */
  32. #define    POINT_HIGH    0x8    /* Select upper half of registers */
  33. #define    RES_EXT_INT    0x10    /* Reset Ext. Status Interrupts */
  34. #define    SEND_ABORT    0x18    /* HDLC Abort */
  35. #define    RES_RxINT_FC    0x20    /* Reset RxINT on First Character */
  36. #define    RES_Tx_P    0x28    /* Reset TxINT Pending */
  37. #define    ERR_RES        0x30    /* Error Reset */
  38. #define    RES_H_IUS    0x38    /* Reset highest IUS */
  39.  
  40. #define    RES_Rx_CRC    0x40    /* Reset Rx CRC Checker */
  41. #define    RES_Tx_CRC    0x80    /* Reset Tx CRC Checker */
  42. #define    RES_EOM_L    0xC0    /* Reset EOM latch */
  43.  
  44. /* Write Register 1 */
  45.  
  46. #define    EXT_INT_ENAB    0x1    /* Ext Int Enable */
  47. #define    TxINT_ENAB    0x2    /* Tx Int Enable */
  48. #define    PAR_SPEC    0x4    /* Parity is special condition */
  49.  
  50. #define    RxINT_DISAB    0    /* Rx Int Disable */
  51. #define    RxINT_FCERR    0x8    /* Rx Int on First Character Only or Error */
  52. #define    INT_ALL_Rx    0x10    /* Int on all Rx Characters or error */
  53. #define    INT_ERR_Rx    0x18    /* Int on error only */
  54.  
  55. #define    WT_RDY_RT    0x20    /* Wait/Ready on R/T */
  56. #define    WT_FN_RDYFN    0x40    /* Wait/FN/Ready FN */
  57. #define    WT_RDY_ENAB    0x80    /* Wait/Ready Enable */
  58.  
  59. /* Write Register #2 (Interrupt Vector) */
  60.  
  61. /* Write Register 3 */
  62.  
  63. #define    RxENABLE    0x1    /* Rx Enable */
  64. #define    SYNC_L_INH    0x2    /* Sync Character Load Inhibit */
  65. #define    ADD_SM        0x4    /* Address Search Mode (SDLC) */
  66. #define    RxCRC_ENAB    0x8    /* Rx CRC Enable */
  67. #define    ENT_HM        0x10    /* Enter Hunt Mode */
  68. #define    AUTO_ENAB    0x20    /* Auto Enables */
  69. #define    Rx5        0x0    /* Rx 5 Bits/Character */
  70. #define    Rx7        0x40    /* Rx 7 Bits/Character */
  71. #define    Rx6        0x80    /* Rx 6 Bits/Character */
  72. #define    Rx8        0xc0    /* Rx 8 Bits/Character */
  73.  
  74. /* Write Register 4 */
  75.  
  76. #define    PAR_ENA        0x1    /* Parity Enable */
  77. #define    PAR_EVEN    0x2    /* Parity Even/Odd* */
  78.  
  79. #define    SYNC_ENAB    0    /* Sync Modes Enable */
  80. #define    SB1        0x4    /* 1 stop bit/char */
  81. #define    SB15        0x8    /* 1.5 stop bits/char */
  82. #define    SB2        0xc    /* 2 stop bits/char */
  83.  
  84. #define    MONSYNC        0    /* 8 Bit Sync character */
  85. #define    BISYNC        0x10    /* 16 bit sync character */
  86. #define    SDLC        0x20    /* SDLC Mode (01111110 Sync Flag) */
  87. #define    EXTSYNC        0x30    /* External Sync Mode */
  88.  
  89. #define    X1CLK        0x0    /* x1 clock mode */
  90. #define    X16CLK        0x40    /* x16 clock mode */
  91. #define    X32CLK        0x80    /* x32 clock mode */
  92. #define    X64CLK        0xC0    /* x64 clock mode */
  93.  
  94. /* Write Register 5 */
  95.  
  96. #define    TxCRC_ENAB    0x1    /* Tx CRC Enable */
  97. #define    RTS        0x2    /* RTS */
  98. #define    SDLC_CRC    0x4    /* SDLC/CRC-16 */
  99. #define    TxENAB        0x8    /* Tx Enable */
  100. #define    SND_BRK        0x10    /* Send Break */
  101. #define    Tx5        0x0    /* Tx 5 bits (or less)/character */
  102. #define    Tx7        0x20    /* Tx 7 bits/character */
  103. #define    Tx6        0x40    /* Tx 6 bits/character */
  104. #define    Tx8        0x60    /* Tx 8 bits/character */
  105. #define    DTR        0x80    /* DTR */
  106.  
  107. /* Write Register 6 (Sync bits 0-7/SDLC Address Field) */
  108.  
  109. /* Write Register 7 (Sync bits 8-15/SDLC 01111110) */
  110.  
  111. /* Write Register 8 (transmit buffer) */
  112.  
  113. /* Write Register 9 (Master interrupt control) */
  114. #define    VIS    1    /* Vector Includes Status */
  115. #define    NV    2    /* No Vector */
  116. #define    DLC    4    /* Disable Lower Chain */
  117. #define    MIE    8    /* Master Interrupt Enable */
  118. #define    STATHI    0x10    /* Status high */
  119. #define    NORESET    0    /* No reset on write to R9 */
  120. #define    CHRB    0x40    /* Reset channel B */
  121. #define    CHRA    0x80    /* Reset channel A */
  122. #define    FHWRES    0xc0    /* Force hardware reset */
  123.  
  124. /* Write Register 10 (misc control bits) */
  125. #define    BIT6    1    /* 6 bit/8bit sync */
  126. #define    LOOPMODE 2    /* SDLC Loop mode */
  127. #define    ABUNDER    4    /* Abort/flag on SDLC xmit underrun */
  128. #define    MARKIDLE 8    /* Mark/flag on idle */
  129. #define    GAOP    0x10    /* Go active on poll */
  130. #define    NRZ    0    /* NRZ mode */
  131. #define    NRZI    0x20    /* NRZI mode */
  132. #define    FM1    0x40    /* FM1 (transition = 1) */
  133. #define    FM0    0x60    /* FM0 (transition = 0) */
  134. #define    CRCPS    0x80    /* CRC Preset I/O */
  135.  
  136. /* Write Register 11 (Clock Mode control) */
  137. #define    TRxCXT    0    /* TRxC = Xtal output */
  138. #define    TRxCTC    1    /* TRxC = Transmit clock */
  139. #define    TRxCBR    2    /* TRxC = BR Generator Output */
  140. #define    TRxCDP    3    /* TRxC = DPLL output */
  141. #define    TRxCOI    4    /* TRxC O/I */
  142. #define    TCRTxCP    0    /* Transmit clock = RTxC pin */
  143. #define    TCTRxCP    8    /* Transmit clock = TRxC pin */
  144. #define    TCBR    0x10    /* Transmit clock = BR Generator output */
  145. #define    TCDPLL    0x18    /* Transmit clock = DPLL output */
  146. #define    RCRTxCP    0    /* Receive clock = RTxC pin */
  147. #define    RCTRxCP    0x20    /* Receive clock = TRxC pin */
  148. #define    RCBR    0x40    /* Receive clock = BR Generator output */
  149. #define    RCDPLL    0x60    /* Receive clock = DPLL output */
  150. #define    RTxCX    0x80    /* RTxC Xtal/No Xtal */
  151.  
  152. /* Write Register 12 (lower byte of baud rate generator time constant) */
  153.  
  154. /* Write Register 13 (upper byte of baud rate generator time constant) */
  155.  
  156. /* Write Register 14 (Misc control bits) */
  157. #define    BRENABL    1    /* Baud rate generator enable */
  158. #define    BRSRC    2    /* Baud rate generator source */
  159. #define    DTRREQ    4    /* DTR/Request function */
  160. #define    AUTOECHO 8    /* Auto Echo */
  161. #define    LOOPBAK    0x10    /* Local loopback */
  162. #define    SEARCH    0x20    /* Enter search mode */
  163. #define    RMC    0x40    /* Reset missing clock */
  164. #define    DISDPLL    0x60    /* Disable DPLL */
  165. #define    SSBR    0x80    /* Set DPLL source = BR generator */
  166. #define    SSRTxC    0xa0    /* Set DPLL source = RTxC */
  167. #define    SFMM    0xc0    /* Set FM mode */
  168. #define    SNRZI    0xe0    /* Set NRZI mode */
  169.  
  170. /* Write Register 15 (external/status interrupt control) */
  171. #define    ZCIE    2    /* Zero count IE */
  172. #define    DCDIE    8    /* DCD IE */
  173. #define    SYNCIE    0x10    /* Sync/hunt IE */
  174. #define    CTSIE    0x20    /* CTS IE */
  175. #define    TxUIE    0x40    /* Tx Underrun/EOM IE */
  176. #define    BRKIE    0x80    /* Break/Abort IE */
  177.  
  178.  
  179. /* Read Register 0 */
  180. #define    Rx_CH_AV    0x1    /* Rx Character Available */
  181. #define    ZCOUNT        0x2    /* Zero count */
  182. #define    Tx_BUF_EMP    0x4    /* Tx Buffer empty */
  183. #define    DCD        0x8    /* DCD */
  184. #define    SYNC_HUNT    0x10    /* Sync/hunt */
  185. #define    CTS        0x20    /* CTS */
  186. #define    TxEOM        0x40    /* Tx underrun */
  187. #define    BRK_ABRT    0x80    /* Break/Abort */
  188.  
  189. /* Read Register 1 */
  190. #define    ALL_SNT        0x1    /* All sent */
  191. /* Residue Data for 8 Rx bits/char programmed */
  192. #define    RES3        0x8    /* 0/3 */
  193. #define    RES4        0x4    /* 0/4 */
  194. #define    RES5        0xc    /* 0/5 */
  195. #define    RES6        0x2    /* 0/6 */
  196. #define    RES7        0xa    /* 0/7 */
  197. #define    RES8        0x6    /* 0/8 */
  198. #define    RES18        0xe    /* 1/8 */
  199. #define    RES28        0x0    /* 2/8 */
  200. /* Special Rx Condition Interrupts */
  201. #define    PAR_ERR        0x10    /* Parity error */
  202. #define    Rx_OVR        0x20    /* Rx Overrun Error */
  203. #define    CRC_ERR        0x40    /* CRC/Framing Error */
  204. #define    END_FR        0x80    /* End of Frame (SDLC) */
  205.  
  206. /* Read Register 2 (channel b only) - Interrupt vector */
  207.  
  208. /* Read Register 3 (interrupt pending register) ch a only */
  209. #define    CHBEXT    0x1        /* Channel B Ext/Stat IP */
  210. #define    CHBTxIP    0x2        /* Channel B Tx IP */
  211. #define    CHBRxIP    0x4        /* Channel B Rx IP */
  212. #define    CHAEXT    0x8        /* Channel A Ext/Stat IP */
  213. #define    CHATxIP    0x10        /* Channel A Tx IP */
  214. #define    CHARxIP    0x20        /* Channel A Rx IP */
  215.  
  216. /* Read Register 8 (receive data register) */
  217.  
  218. /* Read Register 10  (misc status bits) */
  219. #define    ONLOOP    2        /* On loop */
  220. #define    LOOPSEND 0x10        /* Loop sending */
  221. #define    CLK2MIS    0x40        /* Two clocks missing */
  222. #define    CLK1MIS    0x80        /* One clock missing */
  223.  
  224. /* Read Register 12 (lower byte of baud rate generator constant) */
  225.  
  226. /* Read Register 13 (upper byte of baud rate generator constant) */
  227.  
  228. /* Read Register 15 (value of WR 15) */
  229.  
  230.  
  231. #endif /* FLAG */
  232.  
  233.  
  234.